package com.study.stream;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.UnaryOperator;
import java.util.stream.Stream;

/**
 * 一、stream 的三个操作步骤
 * 1.创建stream
 * 方式一:可以通过collection系列集合提供的stream()或parallelStream()
 * 方式二：通过Arrays中的静态方法stream()获取数组流
 * 方式三：通过stream中静态方法of()
 * 方式四：创建无限流
 * (1迭代)Stream.iterate
 * (2生成)stream.generate
 * 2.中间操作
 * 3.终止操作（终端操作）
 * */
public class TestStream1 {

    @Test
    public void test(){
        //方式一
        List<Integer> list=new ArrayList<>();
        Stream<Integer> stream = list.stream();

        //方式二
        Stream<String> stream1 = Arrays.stream(new String[]{"123", "234", "345"});

        //方式三
        Stream<String> stringStream = Stream.of("123", "234", "345");

        //方式四
        Stream.iterate(0,(x)->x+2)
                .limit(10)
                .forEach(System.out::println);
        Stream.generate(()->Math.random())
                .limit(10)
                .forEach(System.out::println);
    }
}
